import pymysql  # 关于数据库需要的库


class DataMySQL():
    def mysql_config(self, user, password, db, host='localhost', port=3306, charset='utf8'):
        ''' 配置信息 '''
        self.config = {
            'host': host,  # 主机地址,这里是本机就写localhost,一般是服务器的ip
            'port': port,  # 端口号
            'user': user,  # 用户名
            'password': password,  # 密码
            'db': db,  # 表明你想连接的数据库
            'charset': charset,  # 表明你的编码格式
            'cursorclass': pymysql.cursors.DictCursor  # 返回形式设为字典
        }  # 数据库的配置信息,

    def mysql_connect(self):
        ''' 连接数据库 '''
        self.data_base = pymysql.connect(**self.config)

    def mysql_cursor(self):
        ''' 建立游标 '''
        self.cur = self.data_base.cursor()

    def mysql_exec(self, sql):
        ''' 执行sql语句 '''
        self.cur.execute(sql)  # 执行sql语句

    def mysql_get_data(self):
        ''' 获取读取的所有数据 '''
        data = self.cur.fetchall()
        return data

    def mysql_commit(self):
        ''' 提交修改  '''
        self.data_base.commit()  # 涉及到对数据库表的更改,需要进行提交

    def mysql_close(self):
        ''' 关闭数据库 '''
        self.data_base.close()

    def mysql(self, user, password, db,sql):
        ''' 数据库操作 '''
        self.mysql_config(user, password, db)
        self.mysql_connect()
        self.mysql_cursor()
        self.mysql_exec(sql)
        data = self.mysql_get_data()
        self.mysql_close()
        return data
